define(['./_module'], function (controllers) {
	'use strict';
	
	controllers.controller('CadastroDisciplinaController', [
	                       '$scope',
	                       'DisciplinaService', 
	                       '$sce', 
	                       '$alert', 
	                       'InstrumentoService',
	                       '$routeParams',
	                       function ($scope, disciplinaService, $sce, $alert, instrumentoService, $routeParams) {
			
		$scope.disciplina = disciplinaService.init();
		$scope.instrumento = {};
		
		if (angular.isDefined($routeParams.idDisciplina)) {
			disciplinaService.findById($routeParams.idDisciplina).then(function(result) {
				$scope.disciplina.id = result.data.id;
				$scope.disciplina.descricao = result.data.descricao;
				$scope.disciplina.valor = result.data.valor;
				$scope.instrumento.selected = result.data.instrumento;
				
			});
		}
		
		instrumentoService.findAll().then(function(result) {
			$scope.instrumentos = result.data;
		});
	        
        $scope.save = function() {
        	$scope.disciplina.instrumento = $scope.instrumento.selected;
        	disciplinaService.save($scope.disciplina).success(function(data) {
    			var mensagem = "";
						mensagem = "Disciplina '" + data.descricao + "' inserida com sucesso.";
					
				
				$alert({title: '', content: $sce.trustAsHtml('<p>' + mensagem + '</p>'), placement: 'top', type: 'success', show: true});
			}).error(function(data, status) {
				console.log("Ocorreu erro ao efetuar a operação com a disciplina.");
				$alert({title: 'Erro', content: $sce.trustAsHtml('<p>Ocorreu erro ao efetuar a operação.</p>'), placement: 'top', type: 'danger', show: true});
			});
    		$scope.disciplina = disciplinaService.init();
    		$scope.instrumento = {};
        };
    }]);
});